为 Kerberos 身份验证配置 Squid 服务

如果 Kaspersky Web Traffic Security 是从 RPM 或 DEB 软件包安装到即用型操作系统的,则这些说明适用。

如果您要用名称包含根域名 .local 的域来配置身份验证,您必须完成以下步骤以便操作系统准备进行正确的 Kerberos 身份验证。

要为 Kerberos 身份验证配置 Squid 服务:

  1. 如果正在使用 CentOS 版本 8.x 或 Red Hat Enterprise Linux 版本 8.x 操作系统,配置加密算法使用策略。为此,请执行命令:

    update-crypto-policies --set LEGACY

  2. 复制 squid.keytab 文件到文件夹 /etc/squid/。
  3. 配置 Keytab 文件访问权限。为此,请根据所使用的操作系统运行以下命令:
    • CentOS, Red Hat Enterprise Linux 或 SUSE Linux Enterprise Server:

      chown squid:squid /etc/squid/squid.keytab

      chmod 400 /etc/squid/squid.keytab

    • Ubuntu、Debian 或 ALT Server:

      chown proxy:proxy /etc/squid/squid.keytab

      chmod 400 /etc/squid/squid.keytab

    默认情况下,krb5.keytab 文件拥有者为超级用户。

  4. 根据操作系统,请将以下参数添加到 /etc/squid/squid.conf 文件的开头:
    • CentOS 或 Red Hat Enterprise Linux:

      auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<大写的 realm Active Directory 域名>

      auth_param negotiate children 100 startup=0 idle=10

      auth_param negotiate keep_alive on

      acl authenticated_user proxy_auth REQUIRED

      http_access deny !authenticated_user

    • SUSE Linux Enterprise Server:

      auth_param negotiate program /usr/sbin/negotiate_kerberos_auth -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<大写的 realm Active Directory 域名>

      auth_param negotiate children 100 startup=0 idle=10

      auth_param negotiate keep_alive on

      acl authenticated_user proxy_auth REQUIRED

      http_access deny !authenticated_user

    • Ubuntu、Debian 或 ALT Server:

      auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<大写的 realm Active Directory 域名>

      auth_param negotiate children 100 startup=0 idle=10

      auth_param negotiate keep_alive on

      acl authenticated_user proxy_auth REQUIRED

      http_access deny !authenticated_user

  5. 如果您想要用调试模式启用事件记录,请在 /etc/squid/squid.conf 文件中将 -d 参数添加到第一个字符串。
    • CentOS 或 Red Hat Enterprise Linux:

      auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -d -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<realm Active Directory 域名>

    • SUSE Linux Enterprise Server:

      auth_param negotiate program /usr/sbin/negotiate_kerberos_auth -d -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<大写的 realm Active Directory>

    • Ubuntu、Debian 或 ALT Server:

      auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -d -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<realm Active Directory 域名>

    调试事件将被写入文件 /var/log/squid/cache.log。

  6. 如果想要禁用重播缓存,根据所用的操作系统执行以下操作:
    • 对于 CentOS 或 Red Hat Enterprise Linux,添加以下行到 /etc/sysconfig/squid 文件:

      KRB5RCACHETYPE=none

    • 对于 Ubuntu 18.04.х、Debian 9.х 或 ALT Server,添加一下行到 /etc/default/squid 文件:

      KRB5RCACHETYPE=none

    • 对于 SUSE Linux Enterprise Server 15.x 或 Debian 10.x:
      1. 创建名为 /etc/systemd/system/squid.service.d/override.conf 含以下内容的文件:

        [Service]

        Environment=KRB5RCACHETYPE=none

      2. 运行以下命令:

        systemctl daemon-reload

    默认启用重播缓存。

    重播缓存提供了更可靠的保护,但是会降低应用程序的性能。

  7. 重启 Squid 服务。为此,请执行命令:

    service squid restart

  8. 在企业 LAN 计算机上,在浏览器设置中,指定作为代理服务器托管 Squid 服务的服务器的 完全限定域名(FQDN)。

Squid 服务现在已配置,可使用 Kerberos 身份验证。

页面顶端